package JDBC;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Scanner;

/**
 * 程序启动后，要求完成用户注册功能
 * 1:提示用户分别输入用户名，密码，昵称和年龄
 * 2:将用户输入的信息插入到userinfo表中
 */
public class RegDemo {
    public static void main(String[] args) throws Exception {
       userinfo userinfo = InputUtil.getInputObject(new userinfo(),"欢迎注册");
        System.out.println(userinfo);
        int num = reg(userinfo);
        if(num>0){
            System.out.println("插入完毕!");
        }
    }
    static public int reg(userinfo userinfo) throws Exception{Class.forName("com.mysql.cj.jdbc.Driver");
        Connection connection = DriverManager.getConnection(
                //数据库地址格式:jdbc:mysql://数据库IP:端口/数据库名?一堆参数
                "jdbc:mysql://localhost:3306/tedu?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true",
                "root",//数据库用户名
                "root"//数据库密码
        );
        Statement statement = connection.createStatement();
        /*
            向userinfo表中插入一条记录

            INSERT INTO userinfo(username,password,nickname,age)
            VALUES('张三','123456','阿三',22)
         */
        String sql = "INSERT INTO userinfo(username,password,nickname,age) " +
                "VALUES('"+userinfo.getUsername()+"','"+userinfo.getPassword()+"','"+userinfo.getNickname()+"',"+userinfo.getAge()+")";
        System.out.println(sql);
        /*
            int executeUpdate(String sql)
            专门用于执行DML语句的(INSERT,UPDATE,DELETE)
            返回值表达执行该语句后影响了表中多少条记录
         */
        int num = statement.executeUpdate(sql);
        connection.close();
        return num;
    }
}
